home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / fweb / faq / fweb-faq < prev    next >
Encoding:
Text File  |  1993-05-18  |  51.4 KB  |  1,293 lines

  1. (To see the questions, display lines matching the regexp `^\[[1-9]'.)
  2.  
  3.  
  4. FWEB in Questions and Answers (01/93)
  5. **************************************
  6.  
  7. [last updated 5 Jan 1993]
  8.  
  9. [Send comments to: Marcus Speh, marcus@x4u.desy.de]
  10.  
  11.    This article contains frequently asked questions and their answers
  12. concerning the FWEB system of "Literate Programming" from the "LitProg"
  13. mailing list, until January 1993.
  14.  
  15.    Most of the answers are taken from the postings, with little
  16. moderation from my side. The original postings are archived at
  17. `niord.shsu.edu' in directory `[FILESERV.LITPROG]'.
  18.  
  19.    Comments, corrections and suggestions from several people were used
  20. to improve single questions and answers (*note Acknowledgements::.).
  21. Most notably, John Krommes, FWEB's designer, provided a wealth of
  22. useful comments. I have dubbed him "JAK" in some places.
  23. Inside quotes, my own comments are marked "[... -MS]".
  24. Sections of the FWEB User's Manual are referred to by their section
  25. numbers, as in "[M-10.2]" (*note What is the difference between the FAQ
  26. and the manual?: Question 5.).
  27.  
  28.  
  29. Introduction and Editorial
  30. ***************************
  31.  
  32.  
  33. [1] What is FWEB?
  34. ==================
  35.  
  36.    For a thorough discussion of the WEB system, I refer to the
  37. extensive literature, collected in Nelson Beebe's bibliography (at
  38. `ftp.math.utah.edu' in directory `pub/tex/bib'). For pointers, see the
  39. upcoming "General FAQ" by Dave Thompson.
  40.  
  41. The WEB system.
  42. ---------------
  43.  
  44.    In D.E. Knuth's [author of the original WEB, coauthor of CWEB] own
  45. words, [M-2.4]
  46.  
  47.    "The philosophy behind WEB is that an experienced system programmer,
  48. who wants to provide the best possible documentation of his or her
  49. software products, needs two things simultaneously: a language like TeX
  50. for formatting, and a language like C for programming.
  51. Neither type of language can provide the best documentation by itself;
  52. but when both are appropriately combined, we obtain a system that is
  53. much more useful than either language separately.
  54.  
  55.    The structure of a software program may be thought of as a "web"
  56. that is made up of many interconnected pieces. To document such a
  57. program we want to explain each individual part of the web and how it
  58. relates to its neighbours. The typographic tools provided by TeX (1)
  59. give us an opportunity to explain the local structure of each part by
  60. making that structure visible, and the programming tools provided by
  61. languages such as C or Fortran make it possible for us to specify the
  62. algorithms formally and unambigously. By combining the two, we can
  63. develop a style of programming that maximizes our ability to perceive
  64. the structure of a complex piece of software, and at the same time the
  65. documented programs can be mechanically translated into a working
  66. software system that matches the documentation."
  67.  
  68. FWEB - a multilingual WEB variant.
  69. ----------------------------------
  70.  
  71.    FWEB which is being supported and upgraded by John Krommes is a
  72. substantial extension of CWEB, FWEB supports C, C++, Fortran,
  73. Fortran90, Ratfor, and TeX i.e. writing TeX macros (style files). It
  74. runs on most platforms: VMS, PC, UNIX, and pretty much anything that
  75. the GNU C compiler (GCC) is supported for.
  76.  
  77.    JAK [M-1]:
  78.  
  79.    "The principal design contributions to this version of WEB are
  80.   1. the concept of a current language, so that one can process code
  81.      written in multiple languages in the same WEB run;
  82.  
  83.   2. new production rules for Fortran, Ratfor, and TeX (and some
  84.      modifications of Levy's (2) rules for C;
  85.  
  86.   3. a C-like built-in macro preprocessor;
  87.  
  88.   4. the ability to directly translate Ratfor into Fortran.
  89.  
  90.    In addition, many miscellaneous details have been changed and a
  91. variety of convenience features has been added."
  92.  
  93.    ---------- Footnotes ----------
  94.  
  95.    (1) [which itself is written in Knuth's original Pascal WEB -MS]
  96.  
  97.    (2) [Levy and Knuth are the authors of the C variant of WEB -MS]
  98.  
  99.  
  100. [2] How can I subscribe to LitProg?
  101. ====================================
  102.  
  103.    If you are not yet subscribed to LitProg, but you are interested,
  104. send a MAIL message to `LISTSERV@SHSU.BITNET, or listserv@shsu.edu, or
  105. LitProg-Request@shsu.edu' stating in the text of the MAIL: `SUBSCRIBE
  106. LITPROG  your name in quotes'. The list itself is unmoderated: messages
  107. sent to `litprog@shsu.edu' are automatically distributed to all
  108. subscribers.
  109.  
  110.  
  111. [3] How can I get the FWEB FAQ?
  112. ================================
  113.  
  114.    You may obtain the latest version of this FAQ via anonymous FTP from
  115.    - `niord.shsu.edu' [192.92.115.8] in directory `[FILESERV.FWEB]',
  116.  
  117.    - `lyman.pppl.gov' [192.55.106.129] in directory */pub/fweb/faq*,
  118.  
  119.    - `ftp.imada.ou.dk' [129.142.128.14] in directory `/pub/faq', and
  120.      `ftp.uni-stuttgart.de' [130.83.55.75] in directory
  121.      `pub/soft/tex/web/fweb'.
  122.  
  123.    To retrieve the plain text file via e-mail, include
  124.      SENDME FAQ.FWEB
  125.    in the body of a mail message to
  126.      FILESERV@SHSU.BITNET (fileserv@shsu.edu).
  127.  
  128.    Send the command
  129.      SENDME FILELIST
  130.    in a mail message to `FILESERV' to get valid information on the
  131. names of the downloaded files if you'd like to have another version of
  132. the fweb-faq (*note Which versions of the FAQ are available?: Question
  133. 4.).
  134.  
  135.    NOTE: do *not* include the message `SENDME FWEB' unless you want the
  136. full FWEB distribution!
  137.  
  138.  
  139. [4] Which versions of the FAQ are available?
  140. =============================================
  141.  
  142.    Besides the text file `fweb-faq', the FAQ is available as a Texinfo,
  143. a PostScript, an Info or a DVI file.
  144. All these can be generated from the Texinfo source file `fweb-faq.texi'.
  145. The preprocessed DVI and PostScript files are not included anymore. See
  146. the simple makefile which accompanies the fweb-faq distribution for
  147. detailed information on how to process the Texinfo source. Short
  148. instructions are given in the file `README.fweb-faq'.
  149.  
  150.    If you do not know anything about Texinfo, don't worry: With the
  151. `texinfo.tex' macro package, the principal source file `fweb-faq.texi'
  152. can be TeXed (1) like any ordinary TeX file at the expense of not
  153. getting an index -- try it!
  154.  
  155.    If you would like to start with Texinfo, retrieve its latest version
  156. from `prep.ai.mit.edu' in directory `pub/gnu' (*note How can I
  157. contribute?: Question 6.).
  158.  
  159.    ---------- Footnotes ----------
  160.  
  161.    (1)
  162.  
  163.    If you do not have TeX, you may GNU's `texi2roff' for formatting.
  164.  
  165.  
  166. [5] What is the difference between the FAQ and the manual?
  167. ===========================================================
  168.  
  169.    Most of the stuff in FAQs *is* in the manual, but people either
  170. don't read the manual, or it is too hidden to be found (the FWEB User's
  171. Manual currently has more than 200 pages). Thus the FAQ provides, if
  172. you will, an index to the manual for those questions that come up
  173. regularly. Where possible, sections of the User's Manual for the last
  174. release (FWEB version 1.23a) are referred to by their section numbers
  175. in square brackets, as in "[M-10.2]".
  176.  
  177.  
  178. [6] How can I contribute?
  179. ==========================
  180.  
  181.    If you think that structure or content of this part of the FAQ can
  182. be improved, or if you think you have discovered an error, either write
  183. to me or post your comment to LitProg (with `fweb-faq (version)'
  184. somewhere in the `Subject' line).
  185.  
  186.    If you find your name and email adress anywhere on these pages, I'd
  187. be grateful if you check whether I got them right and inform me
  188. otherwise. The same for errors in ftp site addresses and `Archive-Date'
  189. (look into the `Makefile' to learn how to make these visible).
  190.  
  191.    "The FAQ" for Literate Programming will probably not exist before
  192. the is a unified tool rather than a family of different environments.
  193. On LitProg, all these environments are subject to discussion, and a
  194. family of FAQ lists is planned, together with a master FAQ list for
  195. general questions. This general FAQ will be maintained by David B.
  196. Thompson <wqdbt@ttacs1.ttu.edu>.
  197.  
  198.    If you are interested in participating in one of the FAQ lists for
  199. LitProg, either contact George D. Greenwade (E-mail: `bed_gdg@shsu.edu'
  200. [Internet], `bed_gdg@shsu' [Bitnet], `shsu::bed_gdg' [DECnet]), who
  201. maintains LitProg as well as the `FILESERV' repository at Sam Houston
  202. State University, or simply announce your wish on the LitProg mailing
  203. list.
  204.  
  205.    If you want to write a FAQ yourself, get "FAQ writer's FAQ" (by
  206. Nathan Torkington and Ian Kluft) which originates from the
  207. faq-maintainers mailing list. It can also be obtained via email by
  208. including `SENDME FAQ.WRITING' in the body of a mail message to
  209. `FILESERV', or retrieved from `niord.shsu.edu' in
  210. `[FILESERV.FAQ]FAQ.WRITING'.
  211.  
  212.    If you want to write your FAQ list in Texinfo, use `fweb-faq.texi'
  213. as a template for the principal source file (*note Which versions of
  214. the FAQ are available?: Question 4.).
  215.  
  216.  
  217. [7] What else should be included in the FAQ?
  218. =============================================
  219.  
  220.    * Merge the FAQs from the FWEB User's Manual with this list.
  221.  
  222.    * Remove items of more general character in favor of Dave Thompson's
  223.      general FAQ for LitProg.
  224.  
  225.    * Give more details on the form of the FAQ file's Texinfo source?
  226.  
  227.    * Add thoughts on OOP using the FWEB system (*note Which WEB shall I
  228.      use for C++: Question 16.)?
  229.  
  230.    * Should I include information on how to use FTP?
  231.  
  232.    * Should this or another member of the LitProg FAQ list family be
  233.      cross-posted to USENET (`comp.text.tex', `news.answers')?
  234.  
  235.    Please send me your opinion on these items and suggest more things
  236. which should be done!
  237.  
  238.  
  239. Acknowledgements
  240. =================
  241.  
  242.    Thanks to all those whose postings in LitProg I have used and who
  243. have sent me corrections, especially Bart Childs, Johannes Muller,
  244. David Thompson and Don Petcher for this number of the FAQ, and to
  245. Robert Chassell [FSF, GNU Texinfo and Elisp support] for help with some
  246. Texinfo bugs.
  247.  
  248.    Thanks to the sysadmins who put up the files on FTP sites,
  249. especially Thorbjoern Ravn Andersen (ftp.imada.ou.dk) and Joachim
  250. Schrod (ftp.th-darmstadt.de).
  251.  
  252.    Special thanks to George D. Greenwade for maintaining the list and
  253. the file archives at Sam Houston University, and to John Krommes for
  254. checking this FAQ list for his child.
  255.  
  256.    Personally, I feel indebted to Thorsten Ohl for having introduced me
  257. to FWEB in the first place, and having taught me many more things
  258. related to computing.
  259.  
  260.  
  261. FWEB sources/Manual/Installation
  262. *********************************
  263.  
  264.  
  265. [8] Where can I get FWEB?
  266. ==========================
  267.  
  268.    You can get FWEB (version 1.23a) via anonymous FTP either from
  269. `lyman.pppl.gov', in directory `pub/fweb/v1.23':
  270.  
  271.        /anonymous@lyman.pppl.gov:/pub/fweb/v1.23:
  272.      
  273.        -rwxr-xr-x  1 4145     589          8396 Apr 14 22:45 INSTALL.FWEB*
  274.        -rw-r--r--  1 4145     589         18967 Apr 14 22:45 Makefile
  275.        -rw-r--r--  1 4145     589          3068 Apr 14 22:45 READ_ME.FWEB
  276.        -rw-r--r--  1 4145     589            94 Apr 14 22:45 TAR.exclude
  277.        -rw-r--r--  1 4145     589       1419071 Apr 14 22:45 TAR.v1.23.Z
  278.        drwxr-sr-x  2 4145     589           512 Apr 14 22:45 demos/
  279.        drwxr-sr-x  2 4145     589          1536 Apr 15 18:06 manual/
  280.        ...
  281.  
  282.    Or from `niord.shsu.edu', in directory `[FILESERV.FWEB]':
  283.  
  284.        /anonymous@niord.shsu.edu:/ANON_DEV:/FILESERV/FWEB:
  285.      
  286.        FWEB-V1_23.TAR_Z;1       2772  21-JUL-1992 12:28 (RWE,RWED,RE,RE)
  287.        FWEB-V1_23.ZIP;1         2370  21-JUL-1992 13:10 (RWE,RWED,RE,RE)
  288.        ...
  289.        INTRO.PS;1                175  22-JUL-1992 16:52 (RWE,RWED,RE,RE)
  290.        ...
  291.  
  292. The PostScript file `INTRO.PS' gives a short introduction to Literate
  293. Programming in general, combined with a simple Fortran example program
  294. in FWEB.
  295.  
  296.  
  297. [9] What is the latest version of FWEB?
  298. ========================================
  299.  
  300.    The latest version of FWEB is 1.23a - some time in January 1993,
  301. version 1.30-beta is bound to come out.
  302.  
  303.    Versions that are explicitly intended to be beta versions are now
  304. indicated as such--e.g., v1.30-beta--in the banner line from the
  305. processors.
  306.  
  307.    JAK: "However, given the fragmented state of my time, in some sense
  308. they're all beta."
  309.  
  310.    The latest version can be retrieved via anonymous FTP as described
  311. in *Note Where can I get FWEB?: Question 8.
  312.  
  313.  
  314. [10] Where can I get FWEB for the PC?
  315. ======================================
  316.  
  317.    The official FWEB PC executables are generated as part of each FWEB
  318. release. Retrieve them from the FWEB distribution site `lyman.pppl.gov'
  319. (*note Where can I get FWEB?: Question 8.) buried deep down in
  320. `pub/fweb/v1.23/boot/ibm/pc':
  321.  
  322.  
  323.       ...
  324.       312 -rw-r--r-x  1 4145     589        304636 Apr 15  1992 ftangle.exe*
  325.       272 -rw-r--r-x  1 4145     589        268878 Apr 15  1992 ftangle0.exe*
  326.       280 -rw-r--r-x  1 4145     589        277032 Apr 15  1992 fweave.exe*
  327.       ...
  328.  
  329.    `ftangle0.exe' is ftangle without the Ratfor preprocessor (*note Why
  330. is FWEB so huge?: Question 26.).
  331.  
  332.    Hans-Hermann Bode <hhbode@dosuni1.bitnet> announced his precompiled
  333. files for the PC. They can be retrieved from
  334.  
  335.    `anonymous@niord.shsu.edu:[FILESERV.PC-WEB]':
  336.  
  337.      00INDEX.;1                2  23-JUL-1992 16:26:54.85
  338.      ...
  339.      FWEBEXE.README;1          6  11-JUN-1992 00:15:18.00
  340.      FWEBEXE.READ_ME;1        42   9-JUN-1992 12:13:34.00
  341.      FWEBEXE.ZIP;1          1525  23-JUL-1992 16:06:33.26
  342.      FWEBEXE.ZIP-LST;1         2  23-JUL-1992 16:22:24.54
  343.      ...
  344.  
  345.    or in Europe from `dione.rz.uni-osnabrueck.de' (in directory:
  346. `pub/msdos/tex/web'), and from `ftp.uni-stuttgart' (in directory
  347. `soft/tex/web/cweb').
  348.  
  349.  
  350. [11] Is FWEB small enough to compile on a PC?
  351. ==============================================
  352.  
  353.    Yes.  It is known to compile with MicroSoft C 6.00 and Turbo C.
  354.  
  355.    JAK: "As a remark, it took some considerable pain to make this work.
  356.  The larger sources, such as `ftangle.web', had to be split into as
  357. many as 3 parts (handled by WEB macros and module names). The make file
  358. compiles each of those parts separately, then combines them at link
  359. stage.  Before this was done, compilers tended to bomb with messages
  360. such as `Out of heap space'."
  361.  
  362.    On LitProg, Tero Laakkonen <laakkonen@cc.helsinki.fi> reported that
  363. FWEB also compiles under linux-096c with gcc-2.2.2 on a 80386.
  364.  
  365.    In general, John Krommes offers support for porting FWEB to new
  366. systems - contact <krommes@lyman.pppl.gov>.
  367.  
  368.  
  369. [12] Has anyone installed FWEB on an HP machine?
  370. =================================================
  371.  
  372.    Either get GCC (the GNU C Compiler), or use (if you have it) the
  373. unbundled Hewlett-Packard ANSI C Compiler, which is invoked with `cc
  374. -Aa -D _HPUX_SOURCE' (as `cc(1)' explains in detail). Then `make'
  375. should proceed without any problems.
  376.  
  377.  
  378. Common Things People Want To Know
  379. **********************************
  380.  
  381.  
  382. [13] Can I use LaTeX with FWEB?
  383. ================================
  384.  
  385.    In principle, you may use any package of TeX macros you like.
  386. However, an arbitrary macro package may contain conflicts with macros
  387. used in `fwebmac.sty'. Such conflicts are supposed to be eliminated for
  388. LaTeX).
  389.  
  390.    As for LaTeX which is probably the package most widely used, you
  391. have to do two things at minimum [M-19.7.22]:
  392.   1. Use the command-line option `-PL' (or place them into your
  393.      initialization file `~/.fweb' (*note Key differences for FWEB on
  394.      different systems?: Question 25.).
  395.  
  396.   2. Process fweave's output with `latex' instead of `tex'.
  397.  
  398.    In most cases, to use LaTeX with FWEB it suffices to just say `latex
  399. test' instead of `tex test'.  (I.e., an attempt is made to hide
  400. internally whatever differences there are.) It never hurts, and
  401. sometimes helps, to use the command-line option `-PL' (select
  402. post-processor LaTeX). To print a `|' in a `verbatim' environment, use
  403. `@|', like:  `\begin{verbatim} ... @| ... \end{verbatim}'.
  404.  
  405.    Since FWEB overrides the `\output' routine of LaTeX, some clever
  406. page layout facilities will not work - e.g. there are no floating
  407. bodies: while the `table' environment is lost, the `tabular'
  408. environment still works. See [M-19.22] for details.
  409.  
  410.    Bart Childs reports that the use of AMSTeX causes some problems but
  411. that it has been done.
  412.  
  413.    Difficulties with using LaTeX should be reported directly to Krommes.
  414.  
  415.    For bringing in `lex' and `yacc' scripts and the problem of using
  416. LaTeX's `\footnote', *Note Can I use lex and yacc scripts with FWEB?:
  417. Question 14.
  418.  
  419.  
  420. [14] Can I use lex and yacc scripts with FWEB?
  421. ===============================================
  422.  
  423.    Lewis Perin <m-lp9966@jed.cs.nyu.edu> reported that he has succeeded
  424. bringing in `lex' and `yacc' UNIX scripts in for FWEB using LaTeX's
  425. `verbatim' environment.
  426.  
  427.  
  428. [15] Can I use the footnote environment from LaTeX?
  429. ====================================================
  430.  
  431.    Lewis Perin reports that the superscripts of `\footnotes' appear in
  432. the main text while the actual footnote is nowhere to be seen. In his
  433. reply, Zdenek Wagner <wagner%csearn.bitnet@shsu.edu> refers to a style
  434. file `ftn.sty' which he wrote to correct this (originally for use with
  435. CWEB, it seems).
  436. `ftn.sty' can be retrieved from `niord.shsu.edu' [192.92.115.8] in
  437. directory `[FILESERV.STY]'.
  438.  
  439.  
  440. [16] Which WEB shall I use for C++ ?
  441. =====================================
  442.  
  443.    As CWEB's coauthor Silvio Levy said, starting from version 2.9
  444. (beta), CWEB will understand C++ syntax as well.
  445.  
  446.    Successful compilation on the PC with Borland-C++ was reported on
  447. LitProg.
  448.  
  449.    In the opinion of many people, FWEB is the best CWEB available. It
  450. also supports C, C++, F90, Ratfor, Ratfor-90, and writing TeX macros
  451. wherein (f)tangle produces `.sty' files.
  452.  
  453.    As for the more general question of Object-Oriented Literate
  454. Programming, a very interesting discussion was started by Paul Lyon in
  455. December.
  456.  
  457.    Hopefully, this topic will make it to Dave Thompson's General FAQ
  458. for LitProg (*note How can I contribute?: Question 6.).
  459.  
  460.  
  461. [17] Does FWEB support Makefiles?
  462. ==================================
  463.  
  464.    Not yet. This is planned, though [M-10.2].
  465.  
  466.  
  467. [18] FWEB with the GNU Emacs editor?
  468. =====================================
  469.  
  470.    If you are developing your FWEB programs using the GNU Emacs editor,
  471. there is `web-mode.el' by Mark Motl <motl@cs.tamu.edu>; the
  472. corresponding GNU Emacs "mode" can deal with WEB, CWEB and FWEB.
  473. It is capable of many things, including jumping to sections and
  474. modules, inserting (and previewing) index entries, hiding and exibiting
  475. the body of a `.web' file (showing the tree), inserting, quoting, and
  476. consistently renaming modules etc. It supports change files and journal
  477. files. It is especially useful when dealing with large `.web' files not
  478. to have to deal with "monolithic" FWEB files.
  479. For more information, you may obtain a 30pp. User's Manual and the
  480. source files from the author, from Bart Childs <bart@cs.tamu.edu>.
  481.  
  482.    The current version of `web-mode' (v 1.61, as of Dec 28, 1992) is
  483. faster, more robust, and the documentation in the manual is improved
  484. and more accurate now.
  485. You may also obtain this version as a 220 KByte shell archive from me
  486. <marcus@x4u.desy.de>.
  487.  
  488.  
  489. [19] How do I turn off double sided pagination in FWEB?
  490. ========================================================
  491.  
  492.    In FWEB, the command `\identicalpageheadstrue' [to be put in the so
  493. called "limbo" part of your FWEB file] makes all page headers
  494. identical, but it puts the page numbers in the upper LEFT corner and
  495. the section numbers in the upper RIGHT corner. As Don Petcher pointed
  496. out, to do it the other way around you can either change the macro
  497. `\normaloutput' in `fwebmac.sty' as indicated:
  498.  
  499.      \def\normaloutput#1#2#3{\shipout\vbox{
  500.        \ifodd\pageno\hoffset=\pageshift\fi
  501.        \vbox to\fullpageheight
  502.         {
  503.          \iftitle\global\titlefalse
  504.          \else\hbox to\pagewidth
  505.              {\vbox to10pt{}%
  506.              \ifidenticalpageheads#3\else  % THIS WAS ORIGINALLY #2 <---------
  507.                  \ifodd\pageno
  508.                      #3% Makes page numbers alternate left \& right.
  509.                  \else#2\fi
  510.              \fi
  511.              }%
  512.          \fi
  513.          \vfill#1
  514.          }}% Parameter |#1| is the page itself
  515.        \global\advance\pageno by1}
  516.  
  517. or you can include the above version in your TeX file as a redefinition
  518. of the macro.
  519.  
  520.  
  521. [20] Can I define (and format) new reserved words?
  522. ===================================================
  523.  
  524.    Assume you want to declare `far' to indicate a function pointer:
  525.      void far (*reset)();
  526.  
  527. In order for fweave to treat `far' like a reserved word in C (or any of
  528. the language supported by FWEB), say
  529.        @f far int
  530.  
  531.    somewhere in your source. Weave does not by default recognize `|far|'
  532. as a reserved word (this property extends to cweave as well).
  533.  
  534.    The formatting with `@f' is *language-specific*; it only applies to
  535. identifiers used in the language in force at the point the format
  536. statement is encountered. This feature allows a WEB programmer to
  537. invent new reserved words and/or to unreserve some reserved identifiers
  538. [M-11.12].
  539.  
  540.  
  541. [21] Symbolic debugging of FWEB files?
  542. =======================================
  543.  
  544.    FWEB inserts sync lines `#line 137 foo.web' into the code, so any
  545. compiler/debugger worth its money should respect them. (Including those
  546. running under MS-DOS.)
  547.  
  548.    Extra FWEB comments in the tangled output can be suppressed by a
  549. simple command line switch. See [M-14.2] for a list of command line
  550. options.
  551.  
  552.    NB: well thought out code needs less time debugging - comments like
  553. "since I've started using anyWEB, my debugger has just been collecting
  554. dust ..." were reported from many people on the list.
  555.  
  556.  
  557. [22] Inserting meta-comments in FWEB files?
  558. ============================================
  559.  
  560.    Johannes Muller reported strange output from fweave when defining
  561. two macros "debug" and "gubed" to enclose optional code for debugging
  562. purposes. As his global language, he chose C++.
  563.  
  564.      @m debug @(
  565.      @m gubed @)
  566.      @f debug do
  567.      @f gubed while
  568.  
  569.    This worked fine for him using WEB with Pascal. `@(' and `@)' are
  570. control codes which mark the begin and end of a "meta-comment", i.e.
  571. commented out code that will appear in the output file [M-11.38].
  572. Though I wasn't able to reproduce his errors, it should be remarked
  573. that the preferred way is to use the WEB preprocessor construction
  574. `@#if(0) ... @#endif' instead.
  575.  
  576.    JAK: "That Muller's example doesn't work probably points out a
  577. problem with the macro preprocessor".
  578.  
  579.    For debugging purposes, one can bracket pieces of code by `@#ifdef
  580. DEBUG ... @#endif', switching on DEBUG
  581.  
  582.    by the commandline flag `-mDEBUG' for ftangle [M-7.5].
  583.  
  584.  
  585. [23] Automatic referencing in documentation sections?
  586. ======================================================
  587.  
  588.    To produce the woven output
  589.  
  590.      For info on porting, see section 5
  591.  
  592.    As Steve Avery reported, you can cheat and, somewhere after you
  593. start the module, just throw in something like `\let\refporting=\modno'
  594. and then reference it by `see section~\refporting'.
  595.  
  596.    In FWEB, `\modno' is set to the number of the module being typeset.
  597.  
  598.    Another way to refer to a section is described in [M-19.7.18]:
  599.  
  600.      @ Porting.
  601.      \modlabel{PORTING}
  602.      
  603.      ... more ...
  604.      
  605.      @ Another section.
  606.      \modlabel{ANOTHER}
  607.      
  608.      For info on Porting, see \WEBsection{PORTING}.
  609.  
  610.    `section' is inserted automagically. In the same fashion, the label
  611. `ANOTHER' allows the user to refer to that section number.
  612.  
  613.    In LaTeX, forward referencing works, in Plain TeX it doesn't. Unless
  614. you're using LaTeX, the latter recipe requires that
  615. `\modlabel{ANOTHER}' is defined before referring to it.
  616.  
  617.    If you want to say "module" instead of "section", use `\WEBmodule'
  618. (or equivalently `\module') instead of `\WEBsection'.
  619.  
  620.  
  621. [24] How do I make a title appear on the contents page?
  622. ========================================================
  623.  
  624.    Bart Childs <bart@cs.tamu.edu> contributed three short files to
  625. solve that problem. These listings will disappear here once the full
  626. `web-mode.el' distribution (*note FWEB with the GNU Emacs editor?:
  627. Question 18.) is available at `FILESERV':
  628.  
  629.    * `limbo.material' may be used as the initial skeleton for all WEB
  630.      files. There is a line containing `\def\title' which should be
  631.      modified to include the `title'. Also note that the first few
  632.      lines are to encourage a little more documentation about the
  633.      source. A few lines further into this is a similar convenience to
  634.      add an abstract that will appear on the cover page too.
  635.  
  636.    * `limbo.sty' is a convenient place to record macros that are
  637.      commonly used in WEB files.
  638.  
  639.    * `time.tex', required by `limbo.material'.
  640.  
  641.    Note that the `limbo' style-file parameter can be used to
  642. automatically insert common material into the limbo section of an FWEB
  643. file.
  644.  
  645.  
  646. `limbo.material'
  647. -----------------
  648.  
  649.      -----------------------  limbo.material ------------------
  650.      %
  651.      % ??????.web,   ?fweb version 1.23
  652.      % Author
  653.      % Address
  654.      % e-mail and phone
  655.      %
  656.      %   LIMBO MATERIAL
  657.      %
  658.      \input limbo.sty
  659.      
  660.      \def\title{{\tt }}
  661.      
  662.      %% Comment the previous and uncomment this if you don't use web-mode
  663.      %%\def\title{{\tt ?? I need a Title ??}}
  664.      
  665.      %%% begin Bottom of Contents Page macro
  666.      \def\botofcontents{\vskip 0pt plus 1fil minus 1.5in
  667.      {\bigskip\parskip6pt plus2pt \parindent20pt
  668.      %% begin abstract
  669.      \vskip0.5in
  670.      \noindent{\bf Abstract. }\it
  671.      
  672.      }%% end abstract
  673.      
  674.      %% BC often puts this in as a comment about pre-release versions ...
  675.      
  676.      %\vskip0.5in
  677.      %{\vfill\it %% comments on anything else ????
  678.      %
  679.      %\vfil}% end of comments on anything else
  680.      \vfil
  681.        \rightline{My Name}% You can personalize your output here, for example.
  682.        \rightline{\today     }% today.tex should be preloaded, input it if not
  683.        \rightline{\miltime   }% time.tex  should be preloaded, input it if not
  684.      
  685.      }%      end of botofcontents
  686.      
  687.      %   END OF LIMBO MATERIAL
  688.      %
  689.      %
  690.      %   BEGINNING OF WEB
  691.      %
  692.      
  693.      %% Delete the next line after appropriate substitution.
  694.      %% In fweb's you want an @c, @c++, @n, @n9, or @Lx at this point
  695.      
  696.      @* First Module.
  697.      
  698.      @* Index.
  699.  
  700.  
  701. `limbo.sty'
  702. ------------
  703.  
  704.      ------------------------  limbo.sty -------------------------
  705.      % \input today %%%%% How Ridiculous, preload it!!!!!!!!!
  706.      \font\ninett=cmtt9
  707.      \font\ninerm=cmr9
  708.      \let\mc=\ninerm % medium caps for names like UNIX
  709.      \font\Csc=cmcsc10 % Computer Modern Computer Small Caps
  710.      \def\PASCAL{{\rm Pascal}}% Does very little
  711.      \def\WEB{{\ninett WEB}}%  use like \WEB{}  to make space significant
  712.      \let\web=\WEB \def\FWEB{{\ninett FWEB}} \let\fweb=\FWEB
  713.      \def\Fortran{{\Csc Fortran}} \def\Cee{{\bf C}}
  714.      \def\Unix{{\mc UNIX}}  \let\unix=\Unix
  715.      \def\BSl{{\rm\char'134}} \def\<{$\langle\,$} \def\>{$\,\rangle$}
  716.      %
  717.      %%% begin Top of Contents Page macro
  718.      %
  719.      \def\topofcontents{\hsize 6in
  720.        \vglue -30pt plus 1fil minus 1.5in
  721.        \centerline{\title}
  722.        \vskip 15pt
  723.        \centerline{\today}
  724.      \bigskip \vfill
  725.        \def\?##1]{\hbox to 1in{\hfil##1.\ }}}% end of topofcontents
  726.  
  727.  
  728. `time.tex'
  729. -----------
  730.  
  731.      --------------------------  time.tex  ----------------------
  732.      \newcount\milhours\newcount\minutes\newcount\hours
  733.      \def\thetime{\milhours=\time
  734.      \divide\milhours by 60
  735.      \minutes=\milhours
  736.      \multiply \minutes by -60
  737.      \advance\minutes by \time
  738.      \hours=\time \divide\hours by 60
  739.      \ifnum \hours>12 \advance \hours by -12 \fi
  740.      \the\hours:\ifnum \minutes > 9 \the\minutes \else 0\the\minutes \fi}
  741.      
  742.      \def\miltime{\milhours=\time
  743.      \divide\milhours by 60
  744.      \minutes=\milhours
  745.      \multiply \minutes by -60
  746.      \advance\minutes by \time
  747.      \the\milhours:\ifnum\minutes>9 \the\minutes\else 0\the\minutes \fi}
  748.  
  749.  
  750. [25] Key differences for FWEB on different systems?
  751. ====================================================
  752.  
  753.    The machine dependent files, especially `custom.h' and `defaults.mk'
  754. necessary for bootstrapping, can be found in the current distribution
  755. of FWEB (v1.23a) in subdirectory `/boot/'. See the `READ_ME.*' files
  756. there for details.
  757.  
  758.    To run FWEB, commonly used options can be put into an initialization
  759. file [M-14.3] (default name `.fweb'). The subdir's of `/boot/' contain
  760. sample `.fweb' files with necessary commandline options for the system
  761. on which FWEB was built.
  762.  
  763.  
  764. [26] Why is FWEB so huge?
  765. ==========================
  766.  
  767.    Most of FWEB's size can be attributed to the need of supporting
  768. vastly different languages.  The input routines for a free form
  769. language are not usable for Fortran and vice versa.  Furthermore, FWEB
  770. has a Ratfor processor built in (which is a *big* plus, though it is
  771. not strictly related to literate programming).
  772.  
  773.    JAK: "Two other reasons for the large size are
  774.  
  775.   1. the built-in macro preprocessor, an extended version of that for
  776.      ANSI C;
  777.  
  778.   2. the style-file mechanism.
  779.  
  780.    On the positive side, FWEB does most of its memory allocations
  781. dynamically, so one can cut down the size of various tables if
  782. necessary.  Type `ftangle -Y' to find out about the current
  783. allocations; use the `-y' option to change them. The statistics option
  784. `-s' is also helpful to find out how much a job actually uses."
  785.  
  786.    If you do not want the Ratfor preprocessor, you can make a smaller
  787. `ftangle' with the option `LOAD\_RATFOR=0' (see the file
  788. `web/ratfor0.web' of the FWEB distribution, and [5]).
  789.  
  790.  
  791. [27] What is the difference between CWEB and FWEB?
  792. ===================================================
  793.  
  794.    See [M-19.8], Appendix H, for a short list comparing these two
  795. variants of the WEB system.
  796.  
  797.  
  798. [28] What is the difference between FWEB and Funnelweb?
  799. ========================================================
  800.  
  801.    The following was extracted from a text by Paul Lyon (and will
  802. eventually be merged with a FAQ for Funnelweb ...):
  803.  
  804.    "FWEB and Funnelweb are quite distinct. FWEB is built on top of the
  805. CWEB framework; although the parser in its weave processor can do
  806. more--all of ratfor, C, C++, and (though the support is not complete),
  807. TeX, it is still confined to those specific languages, and still
  808. imposes on the user the formatting conventions that please its author.
  809. To get something different you will have to hack the weave processor.
  810. (One could possibly get somewhere by modifying the TeX macro package
  811. that FWEB uses, but that might be the harder way to go, unless, of
  812. course, you are already a TeXpert) ...
  813.  
  814.    Funnelweb, on the other hand, does not try to parse the "source" code
  815. at all; it just takes the layout of the source as written, turns off
  816. the meaning of plain TeX special characters, sets typewriter font, and
  817. then invokes `\obeylines' and `\obeyspaces'; all this together causes
  818. TeX to print the source verbatim (the paragraph formatting is turned
  819. off, and TeX does not gobble spaces). The original WEB, CWEB, FWEB, and
  820. Spiderweb all parse and format the source, inserting TeX math codes for
  821. the operators, putting keywords in boldfont, adjusting the indentation,
  822. and so on. If you like the style chosen for the programme, it looks
  823. much nicer that way. Except for Spiderweb, which can be adapted to
  824. various languages by allowing a fair range of variation in specifying
  825. the pretty printing grammar using a large `awk' script to process the
  826. grammar spec and generate replacement code for significant chunks of
  827. weave, the pretty printing parser(s) in the other are hard coded. This
  828. has it uses besides making the typeset code more attractive; WEB, CWEB,
  829. FWEB, and Spiderweb all do an index of identifiers for the code that
  830. can differentiate, for the most part, between declaration and use of an
  831. identifier (they know enough about the grammar to do that, but not, of
  832. course, as much as a compiler or interpreter) ..."
  833.  
  834.    [Rest deleted: continues with more details on Funnelweb.]
  835.  
  836.    JAK: "Don't hack `fweave'!  Many effects can be obtained by
  837. modifying `fwebmac.sty'. (If one knows enough to hack `fweave', he
  838. presumably knows enough to hack `fwebmac.sty' instead.) Note that the
  839. style-file mechanism does provide some degree of customization."
  840.  
  841.    Please report customizations that are really necessary to John
  842. Krommes.
  843.  
  844.  
  845. [29] Do FWEB files necessarily have to be monolithic?
  846. ======================================================
  847.  
  848.    [Later, this item might move to the general FAQ by David B. Thompson]
  849.  
  850.    There is no real support for multiple source files under FWEB. What
  851. some might like to see is a solution similar to the one presented by
  852. Cameron Smith in his `KR-CWEB-SAMPLE' distribution. He had to hack
  853. CWEB's `cwebmac.sty' to get a neat table of contents and a combined
  854. index distinguishing between entries from different source files [in
  855. fact, `KR-CWEB-SAMPLE' illustrates many more things, all more or less
  856. related to breaking up a literate C program into multiple source files].
  857. For illustration, this is how the table of contents should look like
  858. (sample from Cameron's files):
  859.  
  860.      source module 1: main         Sect Page
  861.      introduction..................1.1  1.1
  862.      main pgm......................1.4  1.2
  863.      index.........................1.10 1.4
  864.      
  865.      source module 2: getop
  866.      introduction..................2.1  2.1    etc.
  867.  
  868.    while entries of the combined index are separated like
  869.  
  870.      Index for source module 1: main
  871.      ...
  872.      Index for source module 2: getop
  873.      ...
  874.      ...
  875.      
  876.      Sections in source module 1: main
  877.      <case for newlines 9> used in section 4...
  878.      ...
  879.  
  880.    For FWEB, the inclusion of files using `@i' is a partial solution
  881. [M-11-13] to avoid having to put all the source code in one file.  So
  882. far, nobody has presented a solution in Cameron's spirit.
  883.  
  884.    This feature is put on JAK's list of possible future enhancements.
  885. It will not be in c1.30, though. Note that CWEB has got an `@i' option,
  886. too (although FWEB's is somewhat more general).
  887.  
  888.    Yet another approach (not limited to FWEB) is the use of a "smart"
  889. editor like GNU Emacs, combined with a "smart" tool like `web-mode'
  890. which is effectively hiding many of the mischiefs of monolithic source
  891. files from the programmer. (*note FWEB with the GNU Emacs editor?:
  892. Question 18.).
  893.  
  894.  
  895. [30] How did tangle and weave get their names?
  896. ===============================================
  897.  
  898.    [Later, this item might move to the general FAQ by David B. Thompson]
  899.  
  900.    In a reply, Cameron Smith wrote:
  901. "One of the problems with having a single preeminent writer in a
  902. language is that everyone always assumes that any enduring tidbit came
  903. from his pen ...".
  904. Fortunately, for the question "How did tangle and weave get their
  905. names", the circulus vitiosus of erroneously quoting William
  906. Shakespeare could be broken. The full answer:
  907.  
  908.        O, what a tangled web we weave
  909.        When first we practise to deceive!
  910.          -- Sir Walter Scott, _Marmion_, canto 6, verse xvii (1808)
  911.  
  912.    Cameron also suggested to include these lines by Richard Palais
  913. (1982):
  914.  
  915.        O, what a tangled WEB we weave
  916.        When TeX we practise to conceive!
  917.  
  918.    Concerning FWEB, JAK reluctantly remarks [M-1]: "We shall call this
  919. new version FWEB when necessary ...".
  920.  
  921.    And more recently: "I now think the choice of `F' in FWEB was a
  922. mistake. `F' stands for Fortran, which motivated this project, but the
  923. ability of FWEB to handle multiple languages is one of its most
  924. distinctive and useful features. But it's probably too late now."
  925.  
  926.    The question to which extent "WEB" inherits from certain German
  927. words I'll leave to the native speakers (with a light heart).
  928.  
  929.  
  930. [31] How am I supposed to abbreviate "Literate Programming"?
  931. =============================================================
  932.  
  933.    [Later, this item might move to the general FAQ by David B.
  934. Thompson.]
  935.  
  936.    There wasn't a clean vote on the mailing list. Most people seemed to
  937. agree that one should not misuse common abbreviations like "LP", "LPR"
  938. etc. Also, the acronym should be pronounceable (thus eliminating
  939. "LitPgm" e.g.). The list's name "LitProg", proposed by Cameron Smith,
  940. seems to be accepted by a majority now. This is also the acronym
  941. adopted for the FAQ list.
  942.  
  943.  
  944. General Questions/Bugs/Problems
  945. ********************************
  946.  
  947.  
  948. [32] What if I think I found a bug in FWEB?
  949. ============================================
  950.  
  951.    John Krommes <krommes@lyman.pppl.gov> actively supports FWEB -- he
  952. must be considered the ultimate source of wisdom.
  953.  
  954.    Once you think you've found a bug, put it out on the list. If nobody
  955. responds, cut your file down to the smallest subfile that still
  956. exhibits the problem you encountered. Then you may contact John.
  957.  
  958.  
  959. [33] Problem opening a new output file for tangled code?
  960. =========================================================
  961.  
  962.    If you're using FWEB's `@o' option in order to open a new output
  963. file for tangled code (with local scope - i.e. for the duration of the
  964. current section only [M-11.21]), you may see output looking like this:
  965.  
  966.      > ftangle test
  967.      This is ScRaMbLeD FTANGLE [SunOS/UNIX version 1.23a (April 13, 1992)].
  968.      Reading test.web ... *1 *4 *6
  969.      Writing the output file(s):  (test.c)(getop.hQmSWs)
  970.      Done.
  971.      CPU = 0.3 sec.; REAL = 0.8 sec.  CPU/REAL = 45.0%.
  972.      [FTANGLE:  No errors were found.]
  973.  
  974.    with spurious characters in the output file names.
  975.  
  976.    This is a bug which will be fixed in FWEB version 1.23b as promised
  977. in the `README' file of the FWEB distribution v1.23a.
  978.  
  979. Preliminary Bug Report
  980. ......................
  981.  
  982.    Aside the list, Don Petcher reports a more specific version of the
  983. problem (this seems to affect both the local `@o' and the global scope
  984. command `@O'):
  985. If you change output files with the `@O' command (or the `@o' command)
  986. and the second filename is shorter than the first, then the second
  987. filename gets spurious characters added.
  988.  
  989.    E.g. creating `*.cc' files and `*.h' files, the `*.h' file always
  990. gets an extra character after the first writing to the `*.cc' file. A
  991. temporary cludge is obvious - add an extra character to the `*' part of
  992. the `*.h' file. So your file names don't go together well, but you
  993. escape the problem.
  994.  
  995.    It now seems as if this bug is pretty much machine dependent. The
  996. recipe pointed out in the last edition of this list, adding characters
  997. to the name part of the secondary output file, only works for Don
  998. Petcher on his NeXT workstation.
  999.  
  1000.    Stirred up by Johannes' complaint Don and I tried a couple of silly
  1001. programs on his NeXT, on a HP9000, on an Apollo 700, on a Sun-4 and on
  1002. a Silicon Graphics workstation (SGI). The result was that none of the
  1003. machines behaves the same for the programs we tried. The Apollo did not
  1004. exhibit the bug at all, for the NeXT Don's cludge works. The HP accepts
  1005. output file names "g" and "g." but produces spurious characters for
  1006. "g.h" - the Sun only accepts "g" but not "g." and "g.h". The SGI
  1007. exhibits the error if the filename contains more than one underscore or
  1008. if the filename is longer than six letters.
  1009.  
  1010.    JAK: "I think this is fixed. I will attempt to thoroughly test this
  1011. out before releasing v1.30."
  1012.  
  1013.  
  1014. [34] Maximum number of equal characters in different section names?
  1015. ====================================================================
  1016.  
  1017.    FWEB may have problems distinguishing section names, if one of them
  1018. is an exact subset of a longer name rather than a length.
  1019.  
  1020.    This is a bug in the mind of some, but it may as well be regarded a
  1021. good "feature" as it should be a warning that poor choices of names has
  1022. happened.
  1023.  
  1024.    JAK: "I think it's a feature, not a bug. And unless I screwed
  1025. something up, the behavior derives from CWEB."
  1026.  
  1027.  
  1028. [35] Must I leave leading blanks in my fortran FWEB file?
  1029. ==========================================================
  1030.  
  1031.    Yes, you should. This is proven by the following example coming from
  1032. Bart Childs.
  1033.  
  1034.      @n
  1035.      @* The world is not perfect.
  1036.      This wonderfully short problem blows outputs garbage
  1037.      from fweave and ftangle if you don't have the leading
  1038.      six columns blank.  Be careful, because in many cases
  1039.      FWEB works fine without the requisite leading blanks.
  1040.      
  1041.      @a
  1042.         program final_exam
  1043.         implicit none
  1044.         integer i, j
  1045.         do i = 1, 7, 2
  1046.           do  j = 6, 1, -1
  1047.             write(*,*) i, j
  1048.             end do
  1049.           end do
  1050.         end
  1051.  
  1052.    To see the effect on fweave, indent with 4 leading blank spaces
  1053. instead of 6.
  1054.  
  1055.    JAK: "The input reader for Fortran--77 *follows the rules* of
  1056. Fortran--77--i.e., statement labels in columns 1--5, continuation
  1057. character in column 6, columns 6--72 for code.  However, note that
  1058. Ratfor uses free-form syntax, and Fortran--90 also has a free-form
  1059. syntax mode, which FWEB attempts to support."
  1060.  
  1061.  
  1062. Index
  1063. ******
  1064.  
  1065. * Menu:
  1066.  
  1067. * #line:                                Question 21.
  1068. * -PL, select pre-processor LaTeX:      Question 13.
  1069. * -s, FWEB statistics option:           Question 26.
  1070. * .fweb:                                Question 13.
  1071. * /anonymous@lyman.pppl.gov/pub/fweb/v1.23: Question 8.
  1072. * /anonymous@niord.shsu.edu/FILESERV/FWEB: Question 8.
  1073. * @(:                                   Question 22.
  1074. * @):                                   Question 22.
  1075. * @f:                                   Question 20.
  1076. * @O:                                   Question 33.
  1077. * @o:                                   Question 33.
  1078. * @|, in LaTeX verbatim:                Question 13.
  1079. * AMSTeX:                               Question 13.
  1080. * anonymous FTP:                        Question 3.
  1081. * anonymous FTP:                        Question 8.
  1082. * anonymous@dione.rz.uni-osnabrueck.de: Question 10.
  1083. * anonymous@ftp.imada.ou.dk/pub/faq:    Question 3.
  1084. * anonymous@ftp.uni-stuttgart.de:       Question 10.
  1085. * anonymous@ftp.uni-stuttgart.de/pub/soft/tex/web/fweb: Question 3.
  1086. * anonymous@lyman.pppl.gov:             Question 10.
  1087. * anonymous@niord.shsu.edu/FILESERV/FWEB: Question 3.
  1088. * anonymous@niord.shsu.edu/[FILESERV.PC-WEB]: Question 10.
  1089. * ANSI C:                               Question 12.
  1090. * Appendix H:                           Question 27.
  1091. * Archive-Date:                         Question 6.
  1092. * Bart Childs <bart@cs.tamu.edu>:       Question 34.
  1093. * Bart Childs <bart@cs.tamu.edu>:       Acknowledgements.
  1094. * Bart Childs <bart@cs.tamu.edu>:       Question 13.
  1095. * Bart Childs <bart@cs.tamu.edu>:       Question 24.
  1096. * Bart Childs <bart@cs.tamu.edu>:       Question 18.
  1097. * Bugs:                                 Question 32.
  1098. * Bugs:                                 General Questions/Bugs/Problems.
  1099. * C:                                    Question 1.
  1100. * C++:                                  Question 16.
  1101. * C++:                                  Question 1.
  1102. * Cameron Smith <cameron@symcom.math.uiuc.edu>: Question 30.
  1103. * Cameron Smith <cameron@symcom.math.uiuc.edu>: Question 29.
  1104. * Change files:                         Question 18.
  1105. * Command line options:                 Question 21.
  1106. * Contents page:                        Question 24.
  1107. * CWEB:                                 Question 1.
  1108. * CWEB:                                 Question 16.
  1109. * CWEB, @i option in:                   Question 29.
  1110. * D.E. Knuth (DEK):                     Question 1.
  1111. * David Thompson <wqdbt@ttacs1.ttu.edu>: Question 1.
  1112. * David Thompson <wqdbt@ttacs1.ttu.edu>: Acknowledgements.
  1113. * Debugger:                             Question 21.
  1114. * Debugging:                            Question 22.
  1115. * DEK (Donald E. Knuth):                Question 1.
  1116. * Design contributions:                 Question 1.
  1117. * Distinguishing section names:         Question 34.
  1118. * Don Petcher <petcher@wuphys.wustl.edu>: Question 33.
  1119. * Don Petcher <petcher@wuphys.wustl.edu>: Question 19.
  1120. * Don Petcher <petcher@wuphys.wustl.edu>: Acknowledgements.
  1121. * Double sided pagination:              Question 19.
  1122. * FAQ for FWEB:                         Question 6.
  1123. * FAQ Writer's Guide:                   Question 6.
  1124. * FAQ, General:                         Question 6.
  1125. * FILESERV:                             Question 6.
  1126. * Floating bodies:                      Question 13.
  1127. * Footnotes in LaTeX:                   Question 15.
  1128. * Formatting:                           Question 1.
  1129. * Fortran:                              Question 1.
  1130. * Fortran--77:                          Question 35.
  1131. * Fortran--90:                          Question 35.
  1132. * Fortran90:                            Question 1.
  1133. * Ftangle:                              Question 33.
  1134. * ftangle, change allocation:           Question 26.
  1135. * ftangle, current allocation:          Question 26.
  1136. * ftn.sty:                              Question 15.
  1137. * Function pointer:                     Question 20.
  1138. * fweave:                               Question 28.
  1139. * FWEB executables:                     Question 26.
  1140. * FWEB for the PC:                      Question 10.
  1141. * FWEB for the PC, precompiled files:   Question 10.
  1142. * FWEB sources:                         FWEB sources/Manual/Installation.
  1143. * FWEB User's Manual:                   Top.
  1144. * FWEB User's Manual, quoting:          Question 5.
  1145. * FWEB, future enhancements:            Question 29.
  1146. * FWEB, latest version:                 Question 9.
  1147. * FWEB, painful work with:              Question 11.
  1148. * FWEB, v1.30-beta:                     Question 9.
  1149. * fweb-faq:                             Question 6.
  1150. * fweb-faq.dvi:                         Question 4.
  1151. * fweb-faq.info:                        Question 4.
  1152. * fweb-faq.ps:                          Question 4.
  1153. * fweb-faq.texi:                        Question 4.
  1154. * fwebmac.sty:                          Question 28.
  1155. * fwebmac.sty:                          Question 19.
  1156. * GCC:                                  Question 12.
  1157. * gcc-2.2.2:                            Question 11.
  1158. * General Questions:                    General Questions/Bugs/Problems.
  1159. * George D. Greenwade <bed_gdg@shsu.edu>: Question 6.
  1160. * Global scope:                         Question 33.
  1161. * GNU C compiler (GCC):                 Question 1.
  1162. * GNU Emacs editor:                     Question 18.
  1163. * GNU Emacs editor:                     Question 4.
  1164. * Hans-Hermann Bode <hhbode@dosuni1.bitnet>: Question 10.
  1165. * Hewlett-Packard:                      Question 12.
  1166. * How can I contribute?:                Question 6.
  1167. * HP:                                   Question 12.
  1168. * Ian Kluft <ikluft@uts.amdahl.com>:    Question 6.
  1169. * Initialization file:                  Question 13.
  1170. * Intel 80386:                          Question 11.
  1171. * Introduction and Editorial:           Introduction and Editorial.
  1172. * JAK (John A. Krommes):                Top.
  1173. * JAK (John A. Krommes):                Question 29.
  1174. * JAK, quoted:                          Question 9.
  1175. * JAK, quoted:                          Question 22.
  1176. * JAK, quoted:                          Question 11.
  1177. * JAK, quoted:                          Question 34.
  1178. * JAK, quoted:                          Question 1.
  1179. * JAK, quoted:                          Question 35.
  1180. * JAK, quoted:                          Question 33.
  1181. * JAK, quoted:                          Question 28.
  1182. * Joachim Schrod <schrod@iti.informatik.th-darmstadt.de>: Acknowledgements.
  1183. * Johannes Muller <jmu@ccr.jussieu.fr>: Acknowledgements.
  1184. * Johannes Muller <jmu@ccr.jussieu.fr>: Question 22.
  1185. * John A. Krommes (JAK):                Top.
  1186. * John Krommes <krommes@lyman.pppl.gov>: Question 11.
  1187. * John Krommes <krommes@lyman.pppl.gov>: Question 1.
  1188. * John Krommes <krommes@lyman.pppl.gov>: Question 32.
  1189. * John Krommes <krommes@lyman.pppl.gov>: Acknowledgements.
  1190. * Journal files:                        Question 18.
  1191. * Language-specific:                    Question 20.
  1192. * LaTeX:                                Question 13.
  1193. * Lewis Perin <m-lp9966@jed.cs.nyu.edu>: Question 15.
  1194. * Lewis Perin <m-lp9966@jed.cs.nyu.edu>: Question 14.
  1195. * lex:                                  Question 14.
  1196. * limbo, style-file parameter:          Question 24.
  1197. * limbo.material:                       limbo.material.
  1198. * limbo.material:                       Question 24.
  1199. * limbo.sty:                            Question 24.
  1200. * limbo.sty:                            limbo.sty.
  1201. * linux-096c:                           Question 11.
  1202. * Literate Programming, abbreviation for: Question 31.
  1203. * LitProg Mailing List:                 Top.
  1204. * LitProg-Request@shsu.edu:             Question 2.
  1205. * Local scope:                          Question 33.
  1206. * Macro preprocessor:                   Question 1.
  1207. * Macro preprocessor:                   Question 22.
  1208. * mail-server@rtfm.mit.edu:             Question 8.
  1209. * Make:                                 Question 12.
  1210. * Makefile:                             Question 6.
  1211. * Makefile:                             Question 17.
  1212. * Makefiles, FWEB support:              Question 17.
  1213. * Marcus Speh <marcus@x4u.desy.de>:     Top.
  1214. * Mark Motl <motl@cs.tamu.edu>:         Question 18.
  1215. * Marmion, canto 6, verse xvii:         Question 30.
  1216. * Meta-comment:                         Question 22.
  1217. * Microsoft C 6.00:                     Question 11.
  1218. * MS-DOS:                               Question 21.
  1219. * Multilingual WEB variant:             Question 1.
  1220. * Nathan Torkington <Nathan.Torkington@vuw.ac.nz>: Question 6.
  1221. * Native speaker:                       Question 30.
  1222. * Nelson H. F. Beebe <beebe@math.utah.edu>: Question 1.
  1223. * niord.shsu.edu/FILESERV/LITPROG:      Top.
  1224. * Object-Oriented Literate Programming: Question 16.
  1225. * Paul Lyon <uunet!emx.cc.utexas.edu!plyon>: Question 28.
  1226. * PC:                                   Question 1.
  1227. * prep.ai.mit.edu:/pub/gnu:             Question 4.
  1228. * Programming, Literate (!):            Question 1.
  1229. * Question for the General FAQ:         Question 1.
  1230. * Question for the General FAQ:         Question 31.
  1231. * Question for the General FAQ:         Question 29.
  1232. * Question for the General FAQ:         Question 30.
  1233. * Ratfor:                               Question 1.
  1234. * Ratfor:                               Question 35.
  1235. * Ratfor processor:                     Question 26.
  1236. * README.fweb-faq:                      Question 4.
  1237. * Referencing:                          Question 23.
  1238. * Reserved words:                       Question 20.
  1239. * Richard Palais:                       Question 30.
  1240. * Robert J. Chassell <bob@gnu.ai.mit.edu>: Acknowledgements.
  1241. * Sam Houston State University:         Question 6.
  1242. * Section names, referencing of:        Question 23.
  1243. * Silvio Levy <levy@math.berkeley.edu>: Question 1.
  1244. * Silvio Levy <levy@math.berkeley.edu>: Question 16.
  1245. * Sir Walter Scott <not reachable via email>: Question 30.
  1246. * Steve Avery <stevea@vast.unsw.edu.au>: Question 23.
  1247. * SUBSCRIBE LITPROG:                    Question 2.
  1248. * support porting FWEB:                 Question 11.
  1249. * Sync lines:                           Question 21.
  1250. * table:                                Question 13.
  1251. * tabular:                              Question 13.
  1252. * Tangle:                               Question 16.
  1253. * Tero Laakkonen <laakkonen@cc.helsinki.fi>: Question 11.
  1254. * TeX:                                  Question 1.
  1255. * Texinfo system:                       Question 4.
  1256. * Thorbjoern Ravn Andersen <ravn@imada.ou.dk>: Acknowledgements.
  1257. * Thorsten Ohl <ohl@chico.harvard.edu>: Acknowledgements.
  1258. * time.tex:                             Question 24.
  1259. * time.tex:                             time.tex.
  1260. * Title:                                Question 24.
  1261. * Titlepage:                            Question 24.
  1262. * To-do-list:                           Question 7.
  1263. * Turbo C:                              Question 11.
  1264. * UNIX:                                 Question 1.
  1265. * version 1.23b:                        Question 33.
  1266. * VMS:                                  Question 1.
  1267. * Weave:                                Question 20.
  1268. * WEB:                                  Question 1.
  1269. * WEB preprocessor:                     Question 22.
  1270. * web-mode.el:                          Question 18.
  1271. * William Shakespeare:                  Question 30.
  1272. * yacc:                                 Question 14.
  1273. * Zdenek Wagner <wagner%csearn.bitnet@shsu.edu>: Question 15.
  1274. * [M-10.2]:                             Question 17.
  1275. * [M-11.12]:                            Question 20.
  1276. * [M-11.21]:                            Question 33.
  1277. * [M-11.38]:                            Question 22.
  1278. * [M-14.2]:                             Question 21.
  1279. * [M-19.7.18]:                          Question 23.
  1280. * [M-19.7.22]:                          Question 13.
  1281. * [M-19.8]:                             Question 27.
  1282. * [M-1]:                                Question 1.
  1283. * [M-2.4]:                              Question 1.
  1284. * [M-7.5]:                              Question 22.
  1285. * \footnote, LaTeX:                     Question 15.
  1286. * \identicalpageheadstrue:              Question 19.
  1287. * \modlabel:                            Question 23.
  1288. * \output:                              Question 13.
  1289. * \ref:                                 Question 23.
  1290. * \WEBsection:                          Question 23.
  1291. * |, in LaTeX verbatim:                 Question 13.
  1292.  
  1293.